Component({
    /**
     * 组件的属性列表
     */
    properties: {
        menuList: {
            type: Array,
            value: []  // 默认是空数组
        },
        selectMenu: {
            type: Object,
            value: {}  // 默认是空对象
        },
        type: {
            type: String,
            value: '0'  // 默认类型为 '0'
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        combinedMenuList: []  // 存储合并后的菜单项
    },

    /**
     * 组件的方法列表
     */
    methods: {
        // 处理菜单项的点击
        changeMenu(e) {
            const selectedItem = e.currentTarget.dataset.value;
            this.setData({
                selectMenu: selectedItem,
                isShow: false
            });
            console.log(selectedItem,"s");
            
            // 触发父组件事件
            this.triggerEvent("changeMenu", selectedItem);
        },

        // 显示菜单
        displayMenu() {
            this.setData({
                isShow: true
            });
        },

        // 关闭菜单
        closeMenu() {
            this.setData({
                isShow: false
            });
        },

        // 根据 type 动态生成菜单项
        generateDynamicMenuList() {
            const { type } = this.data;  // 这里用 data 获取 type
            const menuList = this.properties.menuList;  // 使用 properties 获取传递的 menuList
            let dynamicMenuItems = [];

            // 根据 type 添加动态项
            if (type === '2') {
                dynamicMenuItems = [
                    { id: -2, name: '总分(物理赋分)', endowScore: 1 },
                    { id: -1, name: '总分(物理)', endowScore: 0 },
                    
                ];
            } else if (type === '1') {
                dynamicMenuItems = [
                    { id: -4, name: '总分(历史赋分)', endowScore: 1 },
                    { id: -3, name: '总分(历史)', endowScore: 0 },
                ];
            } else if (type === '0') {
                dynamicMenuItems = [
                    { id: -4, name: '总分', endowScore: 0 }
                ];
            }

            // 确保原始的 menuList 存在
            if (menuList && menuList.length > 0) {
                // 将动态菜单项放到前面
                const combinedMenuList = [...dynamicMenuItems, ...menuList];
                console.log("Combined Menu List:", combinedMenuList);  // 调试：查看合并后的菜单列表

                // 更新合并后的菜单列表
                this.setData({
                    combinedMenuList,
                    selectMenu: combinedMenuList[0]  // 默认选中第一个菜单项
                });
            } else {
                console.log("MenuList is empty:", menuList);
            }
        }


    },

    // 组件加载时初始化菜单
    attached() {
        console.log("MenuList:", this.properties.menuList);  // 调试：查看传入的原始 menuList
        this.generateDynamicMenuList();
    },

    // 当组件的属性 type 或 menuList 发生变化时，重新过滤菜单列表
    observers: {
        'type, menuList': function (type, menuList) {
            console.log("Type changed:", type);  // 调试：查看 type 是否正确变化
            console.log("MenuList changed:", menuList);  // 调试：查看 menuList 是否有变化
            this.generateDynamicMenuList();
        }
    }
});
